FIG. 1 shows a basic arrangement for interfacing a host computer 2 with a disk read/write mechanism 4. A microprocessor based disk controller 6, which includes a data storage buffer, is required for such an interface to accept read and write commands from host computer 2 via input/output bus 7 and to control disk read/write mechanism 4 via control lines 8 to read and write information from/to one or more rotating magnetic disks via information line 9.
Typically, a block of data to be written onto a rotating magnetic disk is first assigned a unique sector identification (ID) code by disk controller 6. The data is then written into a predetermined portion (i.e., sector) of the disk corresponding to that unique sector ID code. This ID code included in an ID code field of a particular sector thus acts as an address of that data and uniquely identifies the data's location on the disk.
When that data, previously given a file name by the user or by a software program, is to be later read from the disk upon a command by host computer 2, the ID code (or plurality of ID codes if the file requires a plurality of sectors) corresponding to the file name containing the desired data is identified by the disk controller using a memory means. The disk controller then uses the ID code to position a magnetic transducer, or head, over the particular track on the disk known to contain the sector having that ID code. When the head reads an ID code corresponding to the ID code of the desired data to be read, the disk controller then temporarily stores the desired data following the ID code in a buffer for eventual transmission to the main memory of host computer 2.
In addition to an ID code field and data field within each sector, other fields are contained within a sector to enable the accurate reading of the data. In addition, servo bursts are located in each track of the disk to precisely identify the head's position with respect to the center of a track.
FIG. 2 shows a representative one of a plurality of sectors 10 on a disk 12. Sector 10 is greatly enlarged for illustration purposes. There may be 32-64 sectors on a given track of a typical hard disk and as many as 1200 tracks on a single disk surface. Each sector on a disk typically begins with a preamble comprising a variable frequency oscillator (VFO) field 16 (also known as a phase lock oscillator field), having 8-12 bytes, and a synchronous (sync) field 18, having one byte. VFO field 16 and sync field 18 are typically not changed during the life of the disk. VFO field 16 contains a known code pattern, which is typically recorded by the manufacturer of the disk, so that the precise bit frequency of the information following VFO field 16 can be known prior to the information being read. This enables the information which follows VFO field 16 to be read from the disk at the proper read/write clock rate.
A sync field 18, having a known one byte bit pattern, follows VFO field 16 to align the byte boundaries of data following the sync field.
ID code field 22, having a number of bytes required to uniquely identify a single sector on disk 12, follows sync field 18. A unique ID code is assigned to each sector during the initial formatting of the disk and is typically not changed during the life of the disk.
As previously stated, during a read/write operation, the microprocessor based disk controller 6 in FIG. 1 assigns a sector ID code to the data to be stored in a particular sector 10 and retains this correlation in a memory means. A table containing the various correlations between stored data and ID codes may also be written into predetermined sectors of the disk for storage and retrieved by the disk controller during the start-up of the system.
When data is to be read from the disk, the disk controller cross-references the data file name with the particular ID code associated with that data and controls the disk read/write mechanism to read the data following that particular ID code. During a write operation, data is written into a data field of a particular sector by issuing a write command to disk read/write mechanism 4 in FIG. 1 soon after the particular sector has been identified by its ID code.
Following ID code field 22 is Cyclic Redundancy Check (CRC) field 23. The bits contained in CRC field 23 are the product of a CRC algorithm performed on the ID code. When the ID code is later read, a CRC algorithm is again performed on the ID code, and the newly generated CRC code is compared with the CRC code in CRC field 23. If the CRC codes are identical, the read ID code is presumed accurate.
Following CRC field 23 is a gap 24, which provides a needed delay for the disk controller to process the ID code and prepare for reading or writing the data from or to the sector.
Following gap 24 are VFO field 26 and sync field 28, similar in function to VFO and sync fields 16 and 18, respectively. VFO field 26 and sync field 28 are written every time data is written into sector 10 so that this timing information precisely corresponds to the bit rate and byte alignment of the data which follows. If gap 24 did not exist, only VFO field 16 and sync field 18 would be needed to precisely set the data read/write clock phase, clock frequency, and byte alignment.
Data field 30 follows sync field 28. Data field 30 typically totals 512 bytes and contains the information of interest to the user of host computer 2 in FIG. 1.
Error correction code (ECC) field 34 follows data field 30 and typically comprises up to 11 bytes. Error correction circuitry in the disk controller performs an error correction encoding algorithm on the data bits to be written into a sector and generates the ECC. The ECC is then written into ECC field 34. When the data is later read from the sector, the ECC is checked, and the accuracy of the data can then be determined. The ECC may be used to correct the data if necessary.
At intervals along the various tracks of the disk, servo bursts, such as servo burst 40 in FIG. 2, are recorded (typically by the manufacturer of the disk) to provide information to disk read/write mechanism 4 indicating when the read/write head is positioned directly over a track. Disk read/write mechanism 4 typically contains circuitry to process these servo bursts and properly align the position of the read/write head over the track. This processing of servo bursts is transparent to the disk controller. Disk controller 6 must, however, not confuse the servo bursts with other recorded information and must not attempt to write over a servo burst. Typically this servo burst 40 is 32 bytes long.
As an example, each servo burst may be a paired burst, A and B, positioned on opposite sides of a track. When the head detects that the amplitude of burst A does not equal that of burst B, the disk read/write mechanism adjusts the head position until the amplitudes of A and B are equal. In this way, the head is centered over the track. The particular information contained in a servo burst is irrelevant to this disclosure.
These servo bursts are written onto the various tracks by the disk manufacturer and read from the disk at either fixed time intervals or at intervals based on a physical distance around each track.
FIG. 3 shows servo bursts 40 being written onto the various tracks of a rotating disk at fixed time intervals. Since the intervals are fixed in time, there is more distance between servo bursts 40 around the outer tracks of the disk than around the inner tracks.
In the prior art, recorded sectors, such as sectors 44 and 48 in FIG. 3, are typically located so as not to intersect a servo burst.
In the example shown in FIG. 3, the technology used to write information in inner track sectors 44 and outer track sectors 48 is called Constant Density Recording (CDR), which causes bits to be written onto disk 12 so as to have a constant density whether written onto the inner tracks or the outer tracks. This greatly increases the bit capacity of a disk. However, to achieve CDR, the read/write clocking of data must be faster when reading from or writing to the outer tracks than when reading from or writing to the inner tracks due to the increased speed of the recording medium under the head towards the outer periphery of the rotating disk. As a result, by using CDR, all sectors will be the same physical length whether on the inner tracks or the outer tracks.
As seen from FIG. 3, more sectors may be located between servo bursts 40 in the outer tracks than between servo bursts 40 in the inner tracks.
When not using CDR, but instead using a fixed frequency read/write clock, typically the servo bursts around each track are located at time intervals corresponding to the start of each sector. Thus, for example, there would be one sector between each servo burst irrespective of whether the sector was located on an inner track or an outer track. Using non-CDR technology, sectors would be physically longer on the outer tracks than on the inner tracks, since the speed of the recording medium under the head is faster towards the periphery of the disk.
Another spacing interval for servo bursts when recording data using CDR technology is shown in FIG. 4 and is based on inserting a servo burst 52 at fixed spacings or fixed bit intervals around each track. As seen, each track may have associated with it a different number of servo bursts 52 or a different fixed spacing between servo bursts to allow the sectors 56 to be more optimally spaced around each track.
In the fixed time interval servo bursts illustrated in FIG. 3, the disk controller, such as disk controller 6 in FIG. 1, when reading or writing data from or to a sector, determines when a servo burst will occur (and thus when to skip over the servo burst) based on the number of counts of the fixed frequency disk clock.
In the variable time or bit interval servo bursts illustrated in FIG. 4, the read/write clock pulses may be counted to identify when a servo burst will occur. Since a certain servo burst interval may be associated with each track, a look-up table may be used by the disk controller to determine the clock count between servo bursts for each track.
The invention disclosed herein primarily relates to a method of handling servo bursts when they may occur anywhere on a track, including within virtually any field of a sector. Additional background information is presented to further appreciate the need for this method.
Prior art disk controllers provide very little flexibility in the arrangement of servo bursts on a disk, since the prior art disk controllers do not have the capability of detecting servo bursts occurring anywhere within a data field of a sector or anywhere within the other fields of a sector. Thus, the manufacturers of hard disk drive mechanisms typically locate the servo bursts in a track at a same location in each sector of the track (e.g., at byte X in the data field) or so as not to even occur in a sector. Thus, the predetermined location of the servo bursts in each track may be simply fixed in a memory means within the disk controller.
Thus, the prior art offers limited flexibility in arranging the various sectors in relation to the servo bursts. This results in a less than optimum sector arrangement on the disk, and a relatively large amount of disk area is wasted.
To Applicant's knowledge, no prior art disk controller exists which enables servo bursts and sectors to be arranged such that a servo burst may occur virtually anywhere within virtually any field of a sector.
Thus, what is needed in the field of disk drive controllers is a method of identifying and processing servo bursts occurring at different positions within sectors without unduly increasing the complexity of the disk controller.